package com.gjy.rabbitmq.resolve;

import lombok.Getter;

/**
 * 内部消息信息类
 * 用于缓存待确认消息的详细信息
 *
 * @author gjy
 * @version 1.0
 * @since 2025-10-13 14:41:05
 */
@Getter
public class MessageInfo {
    // Getter方法
    /**
     * 消息ID
     */
    private final String messageId;

    /**
     * 交换机名称
     */
    private final String exchange;

    /**
     * 路由键
     */
    private final String routingKey;

    /**
     * 消息内容
     */
    private final String message;

    /**
     * 重试次数
     */
    private int retryCount = 0;

    /**
     * 时间戳
     */
    private final long timestamp;

    /**
     * 构造消息信息
     *
     * @param messageId  消息ID
     * @param exchange   交换机名称
     * @param routingKey 路由键
     * @param message    消息内容
     */
    public MessageInfo(String messageId, String exchange, String routingKey, String message) {
        this.messageId = messageId;
        this.exchange = exchange;
        this.routingKey = routingKey;
        this.message = message;
        this.timestamp = System.currentTimeMillis();
    }

    public void incrementRetryCount() {
        this.retryCount++;
    }

}
